package org.example.dynamic;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

public class Client {
    public static void main(String[] args) {
        BuyHouse buyHouse = new BuyHouseImpl();
        // 创建调用处理器
        InvocationHandler invocationHandler = new DynamicProxyHandler(buyHouse);
        // 动态创建代理对象
        BuyHouse proxyInstance = (BuyHouse) Proxy.newProxyInstance(
                invocationHandler.getClass().getClassLoader(), // 代理类的类加载器
                buyHouse.getClass().getInterfaces(), // 被代理类的接口
                invocationHandler // 代理调用处理器
        );
        proxyInstance.buy();
    }
}
